package com.foreknow.oop;

/**
 * @author shkstart
 * @create 2021-07-22 15:54
 */

/**
 * 面向对象基础
 * 面试题：你对面向对象是如何理解的？面向对象编程就是面向类(class)来编程，类是一个抽象的模板，(可重用）
 * 1.什么是类：具有相同属性和行为的一个模板，他是一个抽象的概念  类中只能写属性(变量)和行为(方法)
 * 2.什么是对象(就是一个具体的某一个人), 如何创建一个或者多个对象？ 语法：类名 变量名 = new 类名();
 * 3.类与对象的关系 类是抽象的而对象是具体的。
 */
public class Person {
    //属性
    String name;
    int age;
    int height;


    //行为
    public void study() {
        System.out.println("学习......");
    }

    public void eat() {
        System.out.println("吃饭......");
    }

    public void sleep() {
        System.out.println("睡觉......");
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", height=" + height +
                '}';
    }

    public static void main(String[] args) {

        //如何调用当前对象中的属性以及方法：对象名.属性  对象名.方法()
        Person person1 = new Person();
        person1.name = "tom";
        person1.age = 23;
        person1.height = 180;
        System.out.println(person1.toString());
        person1.study();
        person1.eat();
        person1.sleep();

        Person person2 = new Person();
        person2.name = "fender";
        person2.age = 25;
        person2.height = 175;
        person2.study();
        person2.eat();
        person2.sleep();
    }
}
